// 1. 分而治之是什么?
// 是D&C 是一种思路 而不是算法
// 著名的递归式解决问题的思路
// 步骤
//    1. 找到基线条件,这种条件必须尽可能简单
//    2. 不断的缩小问题的规模,将问题分解 直到符合基线的条件
//    3. 比如将一块田地 1680 * 640 分解为若干个正方形，每个正方形的长度和宽度都相同，最终分成了80 * 80
//       如何分的呢？ 先拆分为 640 * 640 + 640 * 640  的方形 + 400 * 640的方形 再对余下的进行拆分
//       基线条件是 余下的土地的长是宽的整数倍
//       缩小问题的规模就是对剩下的土地进行更小的划分

// 2. 编写sum函数 对数组[1,2,3] 求和 不用循环
// const fn = (list) => {
//   if (list.length === 0) {
//     return 0
//   } else if (list.length === 1) {
//     return list[0]
//   }
//   // list.shift() 去除第一个元素 并且结果是这个元素
//   // fn(list) 是递归 已经排除了第一个元素
//   return list.shift() + fn(list)
// }
// console.log(fn([99, 100]))
